/**
 * Copyright (c) 2021 Coder League
 * All rights reserved.
 *
 * File：OrderDaoExtension.java
 * History:
 *         2021年1月27日: Initially created, Chrise.
 */
package club.coderleague.cfss.dao.extension;

import java.util.List;
import java.util.Map;

import club.coderleague.cfss.domain.beans.Order;
import club.coderleague.data.jpa.domain.Page;
import club.coderleague.data.jpa.repository.DataRepositoryExtension;

/**
 * 订单数据访问对象扩展。
 * @author Chrise
 */
public interface OrderDaoExtension extends DataRepositoryExtension {
	/**
	 * 查询待处理订单数。
	 * @author Chrise 2021年1月28日
	 * @param entId 企业标识。
	 * @param isSupplier 是否是供应商。
	 * @return 待处理订单数。
	 */
	int queryHandlingNumber(long entId, boolean isSupplier);
	
	/**
	 * 查询订单列表。
	 * @author Chrise 2021年1月31日
	 * @param entId 企业标识。
	 * @param orderState 订单状态。
	 * @param isSupplier 是否是供应商。
	 * @return 订单列表数据。
	 */
	List<Order> queryOrderList(long entId, Integer orderState, boolean isSupplier);
	
	/**
	 * 查询订单详情。
	 * @author Chrise 2021年2月4日
	 * @param orderid 订单标识。
	 * @param isSupplier 是否是供应商。
	 * @return 订单详情数据。
	 */
	Order queryOrderDetail(long orderid, boolean isSupplier);
	
	/**
	 * 查询订单分页数据。
	 * @author Chrise 2021年2月6日
	 * @param states 状态。
	 * @param keyword 关键字。
	 * @param pageIndex 分页索引。
	 * @param pageSize 分页大小。
	 * @return 订单分页数据。
	 */
	Page<Map<String, Object>> queryListData(List<Integer> states, String keyword, Integer pageIndex, Integer pageSize);
}
